package com.xugui.learn.pay.pojo.response;

import com.xugui.learn.pay.pojo.enums.PayStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 查询订单状态响应
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QueryResponse implements Serializable {

    /**
     * 是否成功
     */
    private Boolean success;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 三方交易订单号
     */
    private String transactionId;

    /**
     * 状态
     */
    private PayStatus payStatus;

    /**
     * 支付时间
     */
    private LocalDateTime payTime;

    /**
     * 错误码
     */
    private String errorCode;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 根据错误码和错误信息返回一个查询订单状态失败的响应参数
     *
     * @param errorCode 错误码
     * @param errorMsg  错误信息
     * @return 查询订单状态失败的响应参数
     */
    public static QueryResponse failure(String errorCode, String errorMsg) {
        QueryResponse response = new QueryResponse();
        response.setSuccess(false);
        response.setErrorCode(errorCode);
        response.setErrorMsg(errorMsg);
        return response;
    }
}